在线客服

联系电话

0755-83258725

返回顶部

点击立即购买

Interleaved die (Multi Plane)操作

发表时间:2024-02-14 发表人:兵哥 评论数:0
Interleaved Die(Multi Plane)操作是一种通过NAND Flash存储设备的并行处理能力来提高性能的技术。这种技术允许系统同时在多个独立的Die(一个芯片上的独立NAND Flash单元)上执行操作。称之为“Interleaved”(交错)是因为操作在不同的Die或Plane之间交替进行

在具有多个Die的NAND Flash设备上,每个Die通常由多个Plane组成,从而实现了Multi Plane操作。每个Plane通常有多个Block,且每个Block包含多个Page。当执行Multi Plane Interleaved操作时,你可以同时在不同Die的多个Plane上读取、编程(写入)或擦除数据,进而实现大幅度的性能提升。

实践中,Interleaved Die(Multi Plane)操作通常需要满足以下条件:

  1. 控制器和NAND Flash存储设备都必须支持Interleaved Die(Multi Plane)操作。
  2. 控制器必须能够正确地编排和发送命令到多个Die。
  3. 控制器必须能够管理来自不同Die的并行数据流和状态。

以下是一个Multi Plane Interleaved读取操作的伪代码示例,注意该代码仅为说明用途,且大多数操作需要具体设备的命令码和时序细节:


#define INTERLEAVED_READ_COMMAND 0x00 // 示例命令码,实际的取决于数据手册

void interleaved_multi_plane_read(int die1_plane_address, int die2_plane_address) {
    // 对第一个Die发送Interleaved读命令
    select_die(1); // 可能需要发送一个命令或设置一个片选引脚
    send_nand_command(INTERLEAVED_READ_COMMAND);
    send_row_address(die1_plane_address);
    // 其他必要的读取命令序列步骤... 

    // 对第二个Die发送Interleaved读命令
    select_die(2); // 选择第二个Die
    send_nand_command(INTERLEAVED_READ_COMMAND);
    send_row_address(die2_plane_address);
    // 其他必要的读取命令序列步骤...

    // 等待所有Die准备好数据
    wait_for_all_dies_ready();

    // 从每个Die读取数据
    select_die(1);
    read_data_from_nand();
    select_die(2);
    read_data_from_nand();
}

// 调用函数执行Interleaved Multi Plane读取操作
interleaved_multi_plane_read(die1_row_address, die2_row_address);


控制器固件或者专用的闪存驱动程序会负责管理这些复杂的操作,并为上层用户提供较为简便的接口。

由于Multi Plane和Interleaved操作可以极大提高数据处理的吞吐量和效率,它们对于数据密集型应用,例如在固态硬盘(SSD)中,尤其重要。高级Flash存储控制器会在硬件层面支持这些操作,并通过透明的方式将其提供给系统。

评论
发表评论
icon